Skip to content

Perbaiki bug data presisi#1097

Open
habibie11 wants to merge 4 commits into
rilis-devfrom
dev-1094
Open

Perbaiki bug data presisi#1097
habibie11 wants to merge 4 commits into
rilis-devfrom
dev-1094

Conversation

@habibie11

@habibie11 habibie11 commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

issue #1094
api gabungan https://github.com/OpenSID/API-Database-Gabungan/pull/445

laporan bug dari issue yang sudah di atasi :

  • 1. ketika buka detail data presisi -> pangan error data table
  • 2. ketika buka menu data presisi -> sandang, filter kecamatan dan desa seperti tidak berfungsi karna data yang ditampilkan sama
  • 3. ketika buka detail data di data presisi -> sandang, data yang tampil totalnya tidak sesuai, dan nik yang tampil juga tidak sesuai
  • 4. pada menu data presisi -> kesehatan, pendidikan, ketenagakerjaan, ketika klik detail data yang tampil akan double, di cek di opensid data normal tidak double, dan header table pada data presisi tidak sesuai
  • 5. data di data presisi -> seni budaya tidak muncul, di opensid data nya ada
  • 6. data presisi -> laporan pengisian perdesa secara default akan 0 jika semua dan data akan tampil ketika sudah di filter kab, kec, dan desa
  • juga memperbaiki tipo dari JUMALAH ke JUMLAH
image

Deskripsi

Memperbaiki endpoint API dan tampilan tabel Laporan Data Presisi Per Desa (laporan-perdesa) agar angka/jumlah data dapat selalu tampil dengan akurat sesuai filter wilayah yang aktif (Kabupaten, Kecamatan, Desa, atau Tanpa Filter), serta memastikan perhitungan data hanya mengambil dari tahun pendataan yang sedang aktif.

Perubahan yang dilakukan:

  1. [Frontend OpenKab] perdesa.blade.php:

    • Menambahkan penyematan parameter url.searchParams.set() sebelum inisialisasi DataTables agar request membawa konteks wilayah dari session.
    • Mengubah parameter desa di URL params dari kode_desa menjadi config_desa agar konsisten dengan payload DataTables dan sesuai dengan format session (session('desa.id') berupa integer ID).
  2. [API Controller] DataPresisiLaporanPerDesaController.php:

    • Memperbarui method index() agar membaca parameter config_desa, kode_desa, kode_kecamatan, dan kode_kabupaten.
    • Mengimplementasikan auto-resolve filter wilayah menjadi array $configIds dengan urutan prioritas: config_desa (ID numerik langsung) > kode_desa > kode_kecamatan > kode_kabupaten > tanpa filter (semua desa).
  3. [API Repository] DataPresisiLaporanPerDesaRepository.php:

    • Mengubah signature method getLaporanPerDesa() dari menerima associative array $configs menjadi array $configIds agar konsisten dengan controller dan mendukung agregasi multi-desa.
  4. [API Transformer] DataPresisiLaporanPerDesaTransformer.php:

    • Mengganti switch-case 1 desa tunggal (where('config_id', $configId)) dengan pemetaan $modelMap dinamis dan whereIn('config_id', $configIds) yang mendukung filter di semua level wilayah maupun agregasi total.
    • Menambahkan pemanggilan scope tahunAktif() pada semua query jumlah (lengkap, sebagian, tidak_lengkap) sehingga hanya menghitung data dari tahun yang berstatus aktif (data_presisi_tahun.status = 1).
    • Menerapkan helper method countByStatus() dan countTidakLengkap() untuk efisiensi serta membersihkan duplikasi kode lama.

Alasan perubahan:

  • Mismatch Parameter: Sebelumnya view mengirim kode_*/config_desa sedangkan API controller membaca config_kabupaten/config_kecamatan/config_desa yang salah penamaan, menyebabkan $configId kosong dan nilai count menjadi 0.
  • Dukungan Agregasi Multi-Level: Transformer lama hanya mendukung filter 1 desa spesifik (config_desa), sehingga tidak bisa menampilkan rekapitulasi ketika filter yang dipilih adalah tingkat Kecamatan atau Kabupaten.
  • Konsistensi Tahun Pendataan: Query sebelumnya menghitung dari seluruh tahun secara acak tanpa batasan, yang tidak mencerminkan data aktual pada tahun yang aktif di sistem.

Dampak perubahan:

Fungsionalitas Filter: Data laporan per desa sekarang tampil tepat dan dinamis baik saat difilter per desa spesifik, per kecamatan, per kabupaten, maupun tanpa filter.
Akurasi Data: Angka statistik (lengkap, sebagian, tidak lengkap, total) kini 100% akurat karena dikalkulasi khusus untuk wilayah yang difilter pada tahun pendataan yang aktif.
Clean Code: Pengurangan duplikasi kode pada transformer dan standardisasi parameter antar lapis arsitektur (Controller → Repository → Transformer).

Daftar Periksa (Checklist)

  • Saya telah mematuhi aturan penulisan script dan standar kode.
  • Saya telah memeriksa ketepatan parameter dari frontend OpenKab ke API Database Gabungan.
  • Verifikasi manual telah dilakukan untuk semua skenario filter wilayah (Desa, Kecamatan, Kabupaten, Semua).
  • Verifikasi pemanggilan scope tahunAktif() pada setiap kategori data presisi.
  • Tidak ada error pada log maupun pada response JSON:API.

@github-actions

Copy link
Copy Markdown

🔄 AI PR Review sedang antri di server...

Proses review akan segera dimulai di background — hasil akan muncul sebagai komentar setelah selesai.
Powered by CrewAI · PR #1097

@habibie11 habibie11 changed the title Perbaiki bug data presisi Perbaiki bug data presisi [draft] Jul 15, 2026
@habibie11
habibie11 requested a review from vickyrolanda July 20, 2026 07:01
@habibie11 habibie11 changed the title Perbaiki bug data presisi [draft] Perbaiki bug data presisi Jul 20, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant